import java.awt.*;

import java.awt.event.*;

import java.io.*;

import javax.swing.*;

public class Example10_14 { 

   public static void main(String args[]) { 

      MyWin win=new MyWin();

   }

}

class MyWin extends JFrame implements ActionListener {

   JLabel label=null; 

   JButton 读入=null,写出=null;

   ByteArrayOutputStream out = null;

   MyWin() {

      setLayout(new FlowLayout()); 

      label=new JLabel("How are you");

      读入=new JButton("读入对象"); 

      写出=new JButton("写出对象");

      读入.addActionListener(this);

      写出.addActionListener(this);

      setVisible(true); 

      add(label);

      add(写出);

      add(读入);

      setSize(500,400);

      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

      validate();

   }

   public void actionPerformed(ActionEvent e) {

      if(e.getSource()==写出) {

          try{  out = new ByteArrayOutputStream();

                ObjectOutputStream objectOut = new ObjectOutputStream(out);

                objectOut.writeObject(label);               

                objectOut.close();

          }

          catch(IOException event){}

      }

      else if(e.getSource()==读入) {

          try{  ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray());

                ObjectInputStream objectIn = new ObjectInputStream(in);

                JLabel temp=(JLabel)objectIn.readObject();

                temp.setText("你好"); 

                this.add(temp);

                this.validate();

                objectIn.close();

          }

          catch(Exception event){}

      }

   }

}






